Field of the Invention
The present invention relates to network communications. In particular, but not exclusively, the present invention relates to processing browser sessions in a telecommunications network.
Description of the Related Technology
Users who wish to access data stored at a remote location typically do so via a telecommunications network, such as the internet. In order to transmit and receive data via a telecommunications network, users conventionally subscribe to a telecommunications service provided by a telecommunications service provider. A telecommunications service typically provides access to a wider telecommunications network for a given subscriber client device, a group of subscriber client devices, or a residential or commercial premises network associated with a given subscriber. The service provider network typically performs subscriber authentication and comprises a routing fabric for routing traffic between an authenticated subscriber and the wider telecommunications network. A service provider may comprise a carrier, a mobile network operator (MNO) or an internet service provider (ISP). Subscriber client devices may include personal computers, laptop computers, mobile telephones (including “smart phones”), tablet computers, personal digital assistants, etc.
FIG. 1 shows an example of a conventional telecommunications network 100. A subscriber client device 102 may initially access a service provider network part 104 of the telecommunications network 100, which contains various entities provisioned by the service provider (not shown). Such service provider entities may be responsible for authentication of subscribers/subscriber client devices, access management, billing, etc. The service provider network 104 also typically acts as a gateway between subscriber client device 102 and a wider network 106, such as the public internet. The wider network 106 is, at least in part, used to route data between service provider network 104 and one or more server entities 108. Telecommunications network 100 may also comprise a number of further network parts (not shown), and a number of border/gateway/caching entities (not shown) used to translate between the various network protocols used in each network part where necessary, cache and serve commonly accessed data so as to reduce load between network parts, and/or manage access to each network part.
Access to data via telecommunications network 100 is typically enabled using browser software or other applications (hereinafter “a browser”) on subscriber client device 102. Other applications on subscriber client device 102 may include games or software utilities that also require access to content via telecommunications network 100. For example, some applications accrue revenue by displaying advertisement content to their users. Such advertisement content is typically regularly updated and hosted at a server entity in telecommunications network 100. The application may therefore require access to the server entity via telecommunications network 100 in order to obtain up-to-date advertisement content to display to its users.
A browser enables subscriber client device 102 to take part in a browser session, which comprises a series of one or more requests and responses made to and received from one or more remote entities, such as server entity 108, via telecommunications network 100. A browser may be used to view web pages, obtain files, conduct services such as instant messaging, etc. via telecommunications network 100. Browser session requests and responses typically comprise one or more data packets. Such packetized data is formatted and transported according to one or more network protocols, used in a given part of the network.
FIG. 2 shows an example of a conventional request and response message flow used to obtain data from a server entity 108 over telecommunications network 100 at subscriber client device 102 during a browser session. At step 2a, a request for data is transmitted in the form of a browser session request from subscriber client device 102 into telecommunications network 100, directed at server 108 (for example using a uniform resource locator (URL) or internet protocol (IP) address). Telecommunications network 100 then routes the browser session request to server entity 108 as shown in step 2b; such routing is known in the art and may involve steps such as performing a domain name system (DNS) lookup (not shown) and forwarding by one or more network nodes (not shown).
Server entity 108 then processes the browser session request in order to generate a corresponding browser session response. The response may comprise session control information such as status, and/or data such as a web page or a web page element (such as an image) if the browser session request requested such. At step 2c, server entity 108 transmits the generated browser session response into telecommunications network 100, directed at subscriber client device 102. Telecommunications network 100 then routes the browser session response to subscriber client device 102 as shown in step 2d. 
Some browser sessions may contain a series of multiple browser session requests and browser session responses. This will be the case, for example, if the subscriber browses to multiple web pages consecutively in the given browser session. Often, a series of multiple requests and responses will be required to view a single web page. This is particularly true if different elements of the web page are hosted at different server entities. A common example is encountered when a web page includes one or more advertisement elements.
FIG. 3 shows an example of a conventional telecommunications network 100, wherein the various elements of a given web page are hosted across multiple server entities 108a and 108b. The functionality of subscriber client device 102, service provider network part 104, and wider network part 106 are the same as described previously in relation to FIG. 1. However, telecommunications network 100 now comprises multiple server entities 108a and 108b. According to this example, server entity 108a comprises a primary (page) server entity, which hosts a given web page. Primary (page) server entity 108a may be associated with a content publisher or similar entity. Server entity 108b comprises a secondary (element) server entity, which hosts one or more elements of the given web page hosted by primary (page) server entity 108a. Secondary (element) server entity 108b may be associated with a third party content supplier, an advertiser or similar entity.
FIG. 4 shows an example of a conventional request and response message flow used to obtain a complete web page hosted across multiple server entities 108a and 108b via telecommunications network 100 at subscriber client device 102. At step 4a, a browser session request for the given web page is transmitted from subscriber client device 102 into telecommunications network 100, in this case using a URL for the desired web page. Telecommunications network 100 then routes the browser session request to primary (page) server entity 108a as shown in step 4b, for example by performing a DNS lookup for the requested URL to obtain an IP address for primary (page) server entity 108a. 
Primary (page) server entity 108a then processes the browser session request of step 4b in order to generate a corresponding browser session response. In this case, the response comprises a web page, which may include some but not all of the web page elements required to view the complete requested web page. For the one or more web page elements that are missing, primary (page) server entity 108a inserts instructions into the browser session response which serves to direct subscriber client device 102 to obtain the missing web page elements from secondary (element) server 108b. Such instructions may comprise one or more further URLs for the missing web page elements. At step 4c, primary (page) server entity 108a transmits the generated browser session response into telecommunications network 100, directed at subscriber client device 102. Telecommunications network 100 then routes the browser session response to subscriber client device 102 as shown in step 4d. 
Upon receipt of browser session response 4d, subscriber client device 102 is able to display (or ‘render’) part of the requested web page. However, in order to display the complete requested web page, subscriber client device 102 must request the missing elements of the web page from secondary (element) server entity 108b. Hence, in step 4e, a browser session request for the one or more missing web page elements is transmitted from subscriber client device 102 into telecommunications network 100, in this case using a URL for the desired web page elements. Telecommunications network 100 then routes the browser session request of step 4e to secondary (element) server entity 108b as shown in step 4f, for example by performing a further DNS lookup for the requested URL to obtain an IP address for secondary (element) server entity 108b. 
Secondary (element) server entity 108b then processes the browser session request of step 4f in order to generate a corresponding browser session response. In this case, the response comprises the one or more missing web page elements required to render the complete previously requested web page. At step 4g, secondary (element) server entity 108b transmits the generated browser session response into telecommunications network 100, directed at subscriber client device 102. Telecommunications network 100 then routes the browser session response of step 4g to subscriber client device 102 as shown in step 4h. Upon receipt of browser session response 4h, subscriber client device 102 is able to display the entirety of the originally requested web page.
In some circumstances, the browser session response from primary (page) server 108a may include instructions which serve to direct subscriber client device 102 to obtain multiple missing web page elements from each of a plurality of secondary (element) server entities. In some circumstances, the browser session response from secondary (element) server 108b may include instructions which serve to direct subscriber client device 102 to obtain further missing web page elements from one or more tertiary server entities, and so on.
Network provisioning relates to the allocation of various network resources to entities or communication links in the telecommunication network. This may include the allocation of link resources such as bandwidth or quality of service, or processing resources of one or more service providing network entities, such as content servers or transcoders.
Conventional provisioning is commonly performed on the basis of network logging, such as monitoring the volume of traffic over the network, the types of data accessed, the number of users that access or utilize a certain network resource over a given period of time and so on. Offline analysis is then performed to determine a required provisioning level to support an expected level of use or access. A static provisioning is then applied to the network on the outcome of the offline analysis until the next period of analysis, for example configuring the network to route traffic accordingly, or mirroring/caching content with a high expected demand.
The examples above give an outline of conventional methods and systems for processing browser sessions and network provisioning in a telecommunications network.